时钟与定时器
补充内容,配合主课阅读。
先确认定时器真正拿到多少时钟,再填PSC和ARR。这个顺序别反过来。
从时钟树开始
课程常用HSE 8 MHz,经PLL九倍频得到72 MHz。AHB不分频,APB1二分频,APB2不分频。
APB分频为1时,定时器时钟等于PCLK;否则是2倍PCLK。因此这里PCLK1虽然是36 MHz,TIM2/3/4仍用72 MHz。
只记三条关系
向上计数、普通更新时:
| 要算什么 | 公式 |
|---|---|
| 计数频率 | f / (PSC + 1) |
| 更新周期 | (PSC + 1) × (ARR + 1) / f |
| 高电平时间 | CCR / 计数频率,PWM模式1且有效高 |
(f为RCC给到定时器的时钟频率) 72 MHz下,PSC=71就是每微秒一个计数脉冲,ARR=999就是1 ms一整个计数周期。中心对齐和重复计数器需要另算,不能直接套这张表。
捕获值不是时间
CCR保存边沿到来时的CNT。两次相同极性边沿测周期,不同极性边沿测脉宽。计数差乘每拍时间,才是时间差。
若ARR=999,先捕获900,后捕获100,中间只回绕一次,计数差是200。测量间隔可能超过一个完整周期时,要累计溢出;没有输入时也应设超时,别一直显示旧结果。
电机和舵机别混着看
电机调占空比是在调平均驱动。舵机则把高电平脉宽当位置指令;50 Hz常用,但脉宽与角度对应关系要实测。
先用频率已知的PWM信号测试输入捕获,核对测量结果,再接传感器。这样可以分别检查计数程序和传感器信号。
RTC另用低速时钟或HSE分频,不是跟着APB每秒计一次。课程板没装LSE时,不要直接照搬依赖LSE的配置。